cmake_minimum_required(VERSION 3.12)


#----------------------------------------------------
# 1. 编译cuda静态库
#----------------------------------------------------

# 目标名
set(TARGET_CUDA_NAME cudaElemwise)

# 待编译文件
set(CUDA_PROJ_SRC_FILES
    ${CMAKE_CURRENT_SOURCE_DIR}/fun.cu
    ${PUB_PROJ_SRC_FILES}
)

# 包含目录
set(CUDA_PROJ_INC_PATH 
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${PUB_PROJ_INC_PATH}
)

# 库目录
set(CUDA_PROJ_LINK_PATH
    ${PUB_PROJ_LINK_PATH}
)

# 链接库
set(CUDA_PROJ_LINK_LIB 
    ${PUB_PROJ_LINK_LIB}
    hscuda_raster
)

# 设置编译选项
set(CUDA_PROJ_COMP_OPT 
    ${PUB_PROJ_COMP_OPT}
)

# 调用宏函数进行编译
mac_compile_cudalib_v100(
    TARGET_NAME ${TARGET_CUDA_NAME}
    SRC_FILES ${CUDA_PROJ_SRC_FILES}
    INC_PATH ${CUDA_PROJ_INC_PATH}
    LINK_PATH ${CUDA_PROJ_LINK_PATH}
    LINK_NAMES ${CUDA_PROJ_LINK_LIB}
    COMP_OPT ${CUDA_PROJ_COMP_OPT}
)

#----------------------------------------------------
# 2. 编译可执行程序
#----------------------------------------------------

# 目标名
set(TARGET_NAME test_cudaElemwise)

# 待编译文件
set(CUR_PROJ_SRC_FILES
    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
    ${PUB_PROJ_SRC_FILES}
)

# 包含目录
set(CUR_PROJ_INC_PATH 
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${PUB_PROJ_INC_PATH}
)

# 库目录
set(CUR_PROJ_LINK_PATH
    ${PUB_PROJ_LINK_PATH}
)

# 链接库
set(CUR_PROJ_LINK_LIB 
    ${PUB_PROJ_LINK_LIB}
    ${TARGET_CUDA_NAME}
)

# 设置编译选项
set(CUR_PROJ_COMP_OPT 
    ${PUB_PROJ_COMP_OPT}
)

# 调用宏函数进行编译
fun_compile_exe_v100(
    TARGET_NAME ${TARGET_NAME}
    SRC_FILES ${CUR_PROJ_SRC_FILES}
    INC_PATH ${CUR_PROJ_INC_PATH}
    LINK_PATH ${CUR_PROJ_LINK_PATH}
    LINK_NAMES ${CUR_PROJ_LINK_LIB}
    COMP_OPT ${CUR_PROJ_COMP_OPT}
)

